A General Model for Reachability Testing of Concurrent Programs
نویسندگان
چکیده
Reachability testing is a technique for testing concurrent programs. Reachability testing derives test sequences on-the-fly as the testing process progresses, and can be used to systematically exercise all the behaviors of a program. The main contribution of this paper is a general model for reachability testing. This model allows reachability testing to be applied to many different types of concurrent programs, including asynchronous and synchronous message passing programs, and shared-memory programs that use semaphores, locks, and monitors. We define a common format for execution traces and present timestamp assignment schemes for identifying races and computing race variants, which are a crucial part of reachability testing. Finally, we discuss a prototype reachability testing tool, called RichTest, and present some empirical results.
منابع مشابه
PRELIMINARY VERSION SUBMITTED TO IEEE TRANSACTION ON SOFTWARE ENGINEERING 3 sequences
One approach to testing concurrent programs, called reachability testing, generates synchronization sequencesautomatically, and on-the-fly, without constructing any static models. In this paper, we present a general execution model forconcurrent programs that allows reachability testing to be applied to several commonly used synchronization constructs. We alsopresent a new method fo...
متن کاملStatement-Coverage Testing for Concurrent Programs in Reachability Testing
In this paper we propose a scheme for reachability testing to achieve statement coverage in the dynamic testing of concurrent programs. Previous studies on reachability testing have only enumerated the feasible interleavings of a concurrent program for a given input. The proposed scheme derives inputs from SYN-sequences obtained in reachability testing and uses these inputs to perform reachabil...
متن کاملReachability checking in complex and concurrent software systems using intelligent search methods
Software system verification is an efficient technique for ensuring the correctness of a software product, especially in safety-critical systems in which a small bug may have disastrous consequences. The goal of software verification is to ensure that the product fulfills the requirements. Studies show that the cost of finding and fixing errors in design time is less than finding and fixing the...
متن کاملReachability Testing : An Approach to Testing Concurrent
Concurrent programs are more diicult to test than sequential programs because of nondeterministic behavior. An execution of a concurrent program non-deterministically exercises a sequence of synchronization events, called a synchronization sequence (or SYN-sequence). Nondeterministic testing of a concurrent program P is to execute P with a given input many times in order to exercise distinct SY...
متن کاملReachability Graph-Based Test Sequence Generation for Concurrent Programs
One common approach to test sequence generation for structurally testing concurrent programs involves constructing a reachability graph (RG) and selecting a set of paths from the graph to satisfy some coverage criterion. It is often suggested that test sequence generation methods for testing sequential programs based on a control flow graph (CFG) can also be used to select paths from an RG for ...
متن کامل